package com.scvtc.domain.entity.student;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.experimental.Accessors;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 学生基本信息(StudentsBase)类
 *
 * @author yiFei
 * @since 2022-04-13 17:38:27
 */
@Data
@Builder
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("学生基本信息")
@TableName("students_base")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class StudentsBase implements Serializable {

    private static final long serialVersionUID = 635333436154398096L;

    @TableId
    private Long id;

    /**
     * 身份证号
     */
    @ApiModelProperty(value = "身份证号")
    private String stuIdentityId;

    /**
     * 学号
     */
    @ApiModelProperty(value = " 学号")
    private String stuNum;

    /**
     * 考生号
     */
    @ApiModelProperty(value = "考生号")
    private String stuExamId;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名")
    private String stuName;

    /**
     * 性别
     */
    @ApiModelProperty(value = "性别")
    private String stuGender;

    /**
     * 年龄
     */
    @ApiModelProperty(value = "年龄")
    private Integer stuAge;

    /**
     * 政治面貌
     */
    @ApiModelProperty(value = "政治面貌")
    private String stuPolitical;

    /**
     * 入学年份
     */
    @ApiModelProperty(value = "入学年份")
    private String stuInDate;

    /**
     * 入学方式
     */
    @ApiModelProperty(value = "入学方式")
    private String stuInWay;

    /**
     * 学籍状态
     */
    @ApiModelProperty(value = "学籍状态")
    private String stuStatus;

    /**
     * 学籍类别（正常、异常、未注册等）
     */
    @ApiModelProperty(value = "学籍类别（正常、异常、未注册等）")
    private String stuStatusCategory;

    /**
     * 开户银行
     */
    @ApiModelProperty(value = "开户银行")
    private String stuBank;

    /**
     * 银行卡号
     */
    @ApiModelProperty(value = "银行卡号")
    private String stuBankId;

    /**
     * 是否贷款
     */
    @ApiModelProperty(value = "是否贷款")
    private String stuIsLoan;

    /**
     * 二级学院
     */
    @ApiModelProperty(value = "二级学院")
    private String stuSchool;

    /**
     * 专业
     */
    @ApiModelProperty(value = "专业")
    private String stuMajor;

    /**
     * 班级
     */
    @ApiModelProperty(value = "班级")
    private String stuClass;

    /**
     * 学历层次
     */
    @ApiModelProperty(value = "学历层次")
    private String stuDegrees;

    /**
     * 生日
     */
    @ApiModelProperty(value = "生日")
    private String stuBirthday;

    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话")
    private String stuTel;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    private String stuEmail;

    /**
     * 是否独生子女
     */
    @ApiModelProperty(value = "是否独生子女")
    private String stuOnlyChild;

    /**
     * 生源地区域（如农村、小城市、城镇、大城市等）
     */
    @ApiModelProperty(value = "生源地区域（如农村、小城市、城镇、大城市等）")
    private String stuFromArea;

    /**
     * 民族
     */
    @ApiModelProperty(value = "民族")
    private String stuNation;

    /**
     * 生源地名称（如：四川省成都市）
     */
    @ApiModelProperty(value = "生源地名称（如：四川省成都市）")
    private String stuFromAreaName;

    /**
     * 家庭住址
     */
    @ApiModelProperty(value = "家庭住址")
    private String stuFamilyAddress;

    /**
     * 辅导员
     */
    @ApiModelProperty(value = "辅导员")
    private String stuTutor;

    /**
     * 辅导员电话
     */
    @ApiModelProperty(value = "辅导员电话")
    private String stuTutorTel;

    /**
     * 监护人姓名
     */
    @ApiModelProperty(value = "监护人姓名")
    private String stuGuardiansName;

    /**
     * 监护人电话
     */
    @ApiModelProperty(value = "监护人电话")
    private String stuGuardiansTel;

    /**
     * 数据状态（0正常 1停用）
     */
    @ApiModelProperty(value = "数据状态（0正常 1停用）")
    private String status;

    /**
     * 创建人的用户id
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建人 ID")
    private Long createBy;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 更新人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新人 ID")
    private Long updateBy;
    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    /**
     * 删除标志（0代表未删除，1代表已删除）
     */
    @ApiModelProperty(value = "删除标志（0代表未删除，1代表已删除）")
    @JsonIgnore
    private String delFlag;

}
